background
Typ | Object |
---|---|
Erforderlich | Nein |
Manifest-Version | 2 oder höher |
Beispiel |
json
|
Verwenden Sie den Schlüssel background
, um ein oder mehrere Background-Skripte, eine Hintergrundseite oder einen Service Worker in Ihre Erweiterung einzufügen.
Background-Skripte sind der Ort, um Code zu platzieren, der einen langfristigen Zustand beibehalten oder langfristige Operationen unabhängig von der Lebensdauer bestimmter Webseiten oder Browserfenster ausführen muss.
Background-Skripte werden geladen, sobald die Erweiterung geladen wird und bleiben geladen, bis die Erweiterung deaktiviert oder deinstalliert wird, es sei denn, persistent
ist auf false
gesetzt. Sie können in dem Skript alle WebExtension-APIs verwenden, wenn Sie die notwendigen Berechtigungen angefordert haben.
Weitere Details finden Sie unter Background-Skripte.
Der background
-Schlüssel ist ein Objekt, das eine der folgenden Eigenschaften haben muss (für weitere Informationen, wie diese Eigenschaften unterstützt werden, siehe Browser-Unterstützung):
page |
Wenn Sie spezifischen Inhalt in der Hintergrundseite benötigen, können Sie eine Seite mit der Eigenschaft
Wenn Sie diese Eigenschaft verwenden, können Sie keine Background-Skripte mit |
scripts |
Ein Die Skripte teilen denselben Die Skripte werden in der Reihenfolge geladen, in der sie im Array erscheinen.
Wenn Sie
Hinweis: Wenn Sie ein Skript von einem entfernten Standort mit dem |
service_worker |
Geben Sie eine JavaScript-Datei als den Service Worker der Erweiterung an. Ein Service Worker ist ein Hintergrundskript, das als Haupt-Event-Handler der Erweiterung fungiert. |
Der background
-Schlüssel kann auch diese optionale Eigenschaft enthalten:
persistent |
Ein Wenn nicht angegeben, ist diese Eigenschaft standardmäßig
|
preferred_environment |
Ein Wenn
Chrome unterstützt nur Service Workers und ignoriert daher diesen Schlüssel. Wenn nicht angegeben, führen Firefox und Safari Background-Skripte als Dokumente aus. Safari verwendet einen Service Worker-Kontext, wenn die Erweiterung |
type |
Ein Bestimmt, ob die in
Wenn nicht angegeben, ist diese Eigenschaft standardmäßig auf |
Browser-Unterstützung
Die Unterstützung für die Eigenschaften scripts
, page
und service_worker
variiert zwischen den Browsern wie folgt:
- Chrome:
- unterstützt
background.service_worker
. - unterstützt
background.scripts
(undbackground.page
) nur in Manifest V2-Erweiterungen. - vor Chrome 121 weigert sich Chrome, eine Manifest V3-Erweiterung mit
background.scripts
oderbackground.page
zu laden. Ab Chrome 121 wird ihre Anwesenheit in einer Manifest V3-Erweiterung ignoriert.
- unterstützt
- Firefox:
background.service_worker
wird nicht unterstützt (siehe Firefox-Bug 1573659).- unterstützt
background.scripts
(oderbackground.page
), wennservice_worker
nicht angegeben ist oder das Service Worker-Feature deaktiviert ist. Vor Firefox 120 startete Firefox die Hintergrundseite nicht, wennservice_worker
vorhanden war (siehe Firefox-Bug 1860304). Ab Firefox 121 startet die Hintergrundseite wie erwartet, unabhängig von der Anwesenheit vonservice_worker
.
- Safari:
- unterstützt
background.scripts
(oderbackground.page
) undbackground.service_worker
. Wenn beide angegeben sind, verwendet esbackground.scripts
(oderbackground.page
), es sei denn,preferred_environment
ist aufservice_worker
gesetzt.
- unterstützt
Zur Veranschaulichung ein Beispiel einer plattformübergreifenden Erweiterung, die scripts
und service_worker
unterstützt. Das Beispiel hat folgende manifest.json-Datei:
{
"name": "Demo of service worker + event page",
"version": "1",
"manifest_version": 3,
"background": {
"scripts": ["background.js"],
"service_worker": "background.js"
}
}
Und, in background.js steht:
if (typeof browser === "undefined") {
// Chrome does not support the browser namespace yet.
globalThis.browser = chrome;
}
browser.runtime.onInstalled.addListener(() => {
browser.tabs.create({ url: "http://example.com/first-run.html" });
});
Wenn die Erweiterung ausgeführt wird, passiert Folgendes:
- in Chrome wird die Eigenschaft
service_worker
verwendet, und ein Service Worker startet, der den Tab öffnet, weil Chrome in einer Manifest V3-Erweiterung nur Service Workers für Hintergrundskripte unterstützt. - in Firefox wird die Eigenschaft
scripts
verwendet, und ein Skript startet, das den Tab öffnet, weil Firefox nur Skripte für Hintergrundskripte unterstützt. - in Safari wird die Eigenschaft
service_worker
verwendet, und ein Service Worker startet, der den Tab öffnet, weil Safari der Verwendung von Service Workers für Hintergrundskripte Priorität einräumt.
Beispiele
"background": {
"scripts": ["jquery.js", "my-background.js"]
}
Laden Sie zwei Background-Skripte.
"background": {
"page": "my-background.html"
}
Laden Sie eine benutzerdefinierte Hintergrundseite.